package com.example.asus.menucontext;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;

public class MenuContext extends Activity {
    /**
     * Called when the activity is first created.
     * 在创建活动时调用
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //没有下面的内容点击是无反应的
        /**用Textview注册context menu,一般在Oncreate()方法中*/
        TextView tv = new TextView(this);
        //this是一个指针，只有在非静态函数中才存在，代表当前的类
        //是当前对象里有一个OnClickListener函数，要不不能进行注册，
        //就是说在触发tv的click事件后执行当前对象的OnClickListener方法里的内容
        tv.setText("上下文菜单的载体");
        registerForContextMenu(tv);//长按监听
        setContentView(tv);
    }

    /**创建context menu，和options menu不同，context meun每次显示时都会调用这个函数*/
    @Override
    public boolean onContextItemSelected(MenuItem item)
    {
        // TODO Auto-generated method stub
        super.onContextItemSelected(item);

        /**通过开关语句中item.getItemId()来判断哪个菜单子项被选中*/
        switch (item.getItemId()) {
            case 1://做新建的事情
                break;
            case 2://做打开的事情
                break;
            case 3://退出
                finish();
        }
        return super.onContextItemSelected(item);

    }

    /**通过Menu对象的add()方法添加菜单子项*/
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
    {
        // TODO Auto-generated method stub
        menu.add(0, 1, 1, R.string.newf);
        menu.add(0, 2, 2, R.string.open);
        menu.add(0, 3, 3, R.string.back);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

}